using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DisenchantBar")]
	public class DisenchantBar : MonoClass
	{
		public TAG_PREMIUM m_premiumType => method_2<TAG_PREMIUM>("m_premiumType");

		public TAG_RARITY m_rarity => method_2<TAG_RARITY>("m_rarity");

		public UberText m_typeText => method_3<UberText>("m_typeText");

		public UberText m_amountText => method_3<UberText>("m_amountText");

		public UberText m_numCardsText => method_3<UberText>("m_numCardsText");

		public GameObject m_amountBar => method_3<GameObject>("m_amountBar");

		public GameObject m_dustJar => method_3<GameObject>("m_dustJar");

		public GameObject m_rarityGem => method_3<GameObject>("m_rarityGem");

		public GameObject m_glow => method_3<GameObject>("m_glow");

		public UberText m_numGoldText => method_3<UberText>("m_numGoldText");

		public MeshRenderer m_barFrameMesh => method_3<MeshRenderer>("m_barFrameMesh");

		public int m_numCards => method_2<int>("m_numCards");

		public int m_amount => method_2<int>("m_amount");

		public int m_numGoldCards => method_2<int>("m_numGoldCards");

		public static float NUM_CARDS_TEXT_CENTER_X => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "DisenchantBar", "NUM_CARDS_TEXT_CENTER_X");

		public DisenchantBar(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DisenchantBar(IntPtr address)
			: this(address, "DisenchantBar")
		{
		}

		public void Reset()
		{
			method_8("Reset");
		}

		public void AddCards(int count, int sellAmount, TAG_PREMIUM premiumType)
		{
			method_8("AddCards", count, sellAmount, premiumType);
		}

		public void Init()
		{
			method_8("Init");
		}

		public int GetNumCards()
		{
			return method_11<int>("GetNumCards", Array.Empty<object>());
		}

		public int GetAmountDust()
		{
			return method_11<int>("GetAmountDust", Array.Empty<object>());
		}

		public void UpdateVisuals(int totalNumCards)
		{
			method_8("UpdateVisuals", totalNumCards);
		}
	}
}
